属性和方法只有对象能有，原始值没有。对象包括自己，数组，function
数字都是原始值？只有原始值数字才是原始值

<script type="text/javascript">
	var num = new Number(123);//数字类型的对象，想要数字类型对象什么值，在括号里写.数字有正常的原始值数字和数字对象，原始值数字不能有属性，对象可以有
	var str = new String('asd');//str不能有属性和方法，因为是原始值
	var bol = new Boolean('true')
	//null undefined不能有属性
	null.a = 123;
	undefined.a = 123;
</script>

<script type="text/javascript">
	//包装类  隐式的 包装的过程，原始值操作属性的东西
	var num = 4;
	num.len = 3;//原始值不能有属性和方法
	//new Number(4).len = 3; delete 系统新建一个数字对象，让数字对象的len等于，弥补操作的不足，最后删除
	console.log(num.len);//new Number(4).len  这次的new Number和上回的new Number 不是同一个Number，是两个不同的对象
</script>

<script type="text/javascript">
	var str = new String('abcd');

	var str = 'abcd';
	str.length = 2;
	// new String ('abcd').length = 2;  delete   
	str.a = 'bcd';

	console.log(str);//'abcd'
	// new String ('abcd').length
	console.log(str.length);//对象字符串有length属性
</script>

<script type="text/javascript">
	//包装类
	var num = 4;
	num.len = 3;
	console.log(num.len)
	//new Number(4).len = 3;
</script>

<script type="text/javascript">
	var str = 'abc';
	str += 1;//abc1
	var test = tyoeof(str);//String
	if(test.length == 6){//new String(test).length == 6
		test.sign = 'typeof的返回结果可能为String';//new String(test).sign = 'xxx';
	}
	console.log(test.sign);//new String(test).sign;
</script>

<script type="text/javascript">
	function Person(name,age,sex){
		var a = 0;
		this.name = name;
		this.age = age;
		this.sex = sex;
		function sss(){
			a ++;
			document.write(a);
		}
		this.say = sss;
	}

	var oPerson = new Person();
	oPerson.say();
	oPerson.say();
	var oPerson1 = new Person();
	oPerson1.say();
</script>

<script type="text/javascript">
	var x = 1,y = z = 0;
	function add(n){
		return n = n + 1;//先计算表达式，再返回值
	}
	y = add(x);
	function add(n){
		return n = n + 3;//预编译第二个函数覆盖第一个
	}//
</script>

//console.log的结果是[1,2,3,4,5]的是
<script type="text/javascript">
	function foo(x){
		console.log(arguments);
		return x
	} 
	foo(1,2,3,4,5)
</script>

<script type="text/javascript">
	function foo(x){
		console.log(arguments);
		return x
	}(1,2,3,4,5)//不报错也不执行，会把括号分离开
</script>

<script type="text/javascript">
	(function foo(x){
			console.log(arguments);
			return x
		})(1,2,3,4,5)//立即执行函数，实参列表传送到arguments里面去
</script>

//以下表达式的结果
<script type="text/javascript">
	console.log(parseInt(3,8));//以8进制为基底，将3转化为8进制
	console.log(parseInt(3,2))
	console.log(parseInt(3,0));//0进制无效，返回原值
</script>

//一下哪些是js语言typeof可能返回的结果
string
array
object
null

//alert 的结果
<script type="text/javascript">
	function b(x, y, a){
		arguments[2] = 10;//[2]映射a
		alert(a)
	}
	b(1, 2, 3)
</script>